﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;
using System.Text.RegularExpressions;

namespace QLNS
{
    public partial class frmTiepNhanHocSinh : Form
    {
        public frmTiepNhanHocSinh()
        {
            InitializeComponent();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void label5_Click(object sender, EventArgs e)
        {

        }

        private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
        {

        }
        public bool IsValidEmail(string email) {
            try {
                int nFirt = int.Parse(email.Substring(0, 1));
                return false;
            }
            catch {
                string pattern = @"^[_a-zA-Z0-9][_.a-zA-Z0-9]*@[-.a-zA-Z0-9]+(\.[_.a-zA-Z0-9]+)*\.
    (com|edu|info|gov|int|mil|net|org|biz|name|museum|coop|aero|pro|tv|vn|[a-zA-Z]{2})$";
                //Regular expression object
                Regex check = new Regex(pattern, RegexOptions.IgnorePatternWhitespace);
                //boolean variable to return to calling method
                bool valid = false;

                //make sure an email address was provided
                if (string.IsNullOrEmpty(email)) {
                    valid = false;
                }
                else {
                    //use IsMatch to validate the address
                    valid = check.IsMatch(email.ToLower());
                }
                //return the value to the calling method
                return valid;
            }
        }
        

        private void btnAdd_Click(object sender, EventArgs e)
        {
            DateTime ngaySinh = new DateTime();
            if(txtHoTen.Text.Trim().Equals("")){
                MessageBox.Show("Chưa nhập tên học sinh!!!","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                txtHoTen.Focus();
                return;
            }
            else if (txtNgaySinh.Text.Trim().Equals("") || !DateTime.TryParse(txtNgaySinh.Text, out ngaySinh) || DateTime.Now.Year - ngaySinh.Year > 20 || DateTime.Now.Year - ngaySinh.Year < 15)
            {
               // if ((Now - ngaySinh) > 20)// || ((DateTime.Now - ngaySinh) < 15))
                MessageBox.Show("Học sinh chưa đủ tuổi hoặc đã quá tuổi quy định, vui lòng kiểm tra lại!!!","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                
                txtNgaySinh.Focus();
                return;
            }
            else if (!IsValidEmail(txtEmail.Text.Trim()))
            {
                MessageBox.Show("Email không hợp lệ!!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtEmail.Focus();
                return;
            }
            else if (txtDiaChi.Text.Trim().Equals(""))
            {
                MessageBox.Show("Địa chỉ không được trống!!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtDiaChi.Focus();
                return;
            }
            else
            {
                HocSinhDTO entity = new HocSinhDTO();
                entity.DiaChi = txtDiaChi.Text;
                entity.Email = txtEmail.Text;
                entity.TenHS = txtHoTen.Text;
                if (rdNam.Checked)
                    entity.GioiTinh = 1;
                else
                    entity.GioiTinh = 2;
                entity.NgaySinh = ngaySinh;

                entity.MaL = (int)cbxLop.SelectedValue;

                HocSinhBUS bussiness = new HocSinhBUS();
                bussiness.addHSBus(entity);

                MessageBox.Show("Thêm học sinh thành công","Thành công",MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
        }

        private void frmTiepNhanHocSinh_Load(object sender, EventArgs e) {
            LopBUS bus = new LopBUS();
            cbxLop.DisplayMember = "TenL";
            cbxLop.ValueMember = "MaL";

            cbxLop.DataSource = bus.getLop();
        }

        private void btn_thoat_Click(object sender, EventArgs e) {
            this.Close();
        }

        private void btn_lamlai_Click(object sender, EventArgs e) {
            txtHoTen.Text = "";
            txtNgaySinh.Text = "";
            txtEmail.Text = ""; 
            txtDiaChi.Text = "";
            txtHoTen.Focus();
        }
    }
}
